package main

import (
	"fmt"
	"net"
	"strconv"
)

type Server struct {
	Ip   string
	Port int
}

// 创建服务器
func NewServer(ip string, port int) *Server {
	server := &Server{
		Ip:   ip,
		Port: port,
	}
	fmt.Println("-----")
	return server
}

// 启动服务器
func (server *Server) Start() {
	//开启socket监听
	listener, err := net.Listen("tcp", server.Ip+":"+strconv.Itoa(server.Port))
	if err != nil {
		fmt.Println("net listen error:", err)
	}
	defer listener.Close()

	for {
		conn, err := listener.Accept()
		if err != nil {
			fmt.Println("accept error:", err)
			continue
		}
		go server.handler(conn)
	}
}

// 业务句柄
func (server *Server) handler(conn net.Conn) {
	//处理当前的业务
	fmt.Println("连接成功")
}

func main() {
	fmt.Println("hello world")
	server := NewServer("127.0.0.1", 8989)
	server.Start()
}
